package leetCode;

/**
 * 给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点 。
 * 使用虚拟头节点
 */
public class Solution2 {
        public ListNode removeElements(ListNode head, int val) {

            ListNode dummyHead = new ListNode(-1);
            dummyHead.next = head;
            ListNode prev = dummyHead;
            while (prev.next != null){
                if (prev.next.val == val){
                    prev.next = prev.next.next;
                }else {
                    prev = prev.next;
                }
            }
            return dummyHead.next;

        }

    public static void main(String[] args) {
            int[] arr =  {1,2,3,4,5,5,6};
        ListNode node = new ListNode(arr);
        ListNode node1 = new Solution2().removeElements(node, 5);
        System.out.println(node);
        System.out.println(node1);
    }
}
